3D纹理
3D纹理不能从图像文件构建,而是程序生成的,通常由数组存储。
创建3维纹理对象:
GLuint textureID;
glGenTextures(1, &textureID);
glBindTexture(GL_TEXTURE_3D, textureID);
glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
glTexStorage3D(GL_TEXTURE_3D, 1, GL_RGBA8, texWidth, texHeight, texDepth);
glTexSubImage3D(GL_TEXTURE_3D, 0, 0, 0, 0, texWidth, texHeight, texDepth, GL_RGBA, GL_UNSIGNED_INT_8_8_8_8_REV, data);
return textureID;
噪声
噪声种类:
-
平滑噪声(smooth noise):
对原始块状噪声图进行模糊操作。(取纹素周围8个灰度值的加权平均) -
湍流噪声(turbulence):
对于各种缩放的平滑噪声图,以缩放因子做权重采样每个平滑噪声图的相同位置取加权平均。 -
柏林噪声(perlin noise):
参考资料: https://blog.csdn.net/kuangben2000/article/details/102511295
参考资料:https://www.jianshu.com/p/987b1349c94d?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
噪声纹理应用:
- 生成云幕。(编写Logistic函数)
- 不均匀的雾。
- 水波效果。
- 消融效果。